package main

import "fmt"

// 孔结构体的 demo

// type Set map[string]struct{}

// func (s Set) Has(key string) bool {
// 	_, ok := s[key]
// 	return ok
// }

// func (s Set) Add(key string) {
// 	s[key] = struct{}{}
// }

// func (s Set) Delete(key string) {
// 	delete(s, key)
// }

// func main() {
// 	s := make(Set)
// 	s.Add("tom")
// 	s.Add("sam")
// 	fmt.Println(s.Has("tom"))
// 	fmt.Println(s.Has("jack"))
// }

// 不发送数据的通道
// func worker(ch chan struct{}) {
// 	<-ch
// 	fmt.Println("do something")
// 	close(ch)
// }
// func main() {
// 	ch := make(chan struct{})
// 	go worker(ch)
// 	ch <- struct{}{}
// }

// 3. 仅包含方法的结构体
type Door struct{}

func (d Door) Open() {
	fmt.Println("open the door")
}

func (d Door) Close() {
	fmt.Println("close the door")
}
